import type { ForgeConfig } from '@electron-forge/shared-types';
import { MakerZIP } from '@electron-forge/maker-zip';
import { MakerNSIS } from './src/MakerNSIS';
import { VitePlugin } from '@electron-forge/plugin-vite';

const config: ForgeConfig = {
    packagerConfig: {
        icon: './assets/icon',          // 应用图标（自动识别 .ico/.icns）
        executableName: 'pokemon-studio', // 生成的可执行文件名称（如 pokemon-studio.exe）
        extraResource: [               // 打包时额外包含的资源
            'placeholder.svg'           // 占位图
        ],
        name: 'Pokemon Studio',        // 应用显示名称
    },
    rebuildConfig: {},
    makers: [
        new MakerNSIS({}),
        new MakerZIP({}, ['darwin']),
    ],
    // 配置自动发布渠道（GitHub Releases）：
    // 运行 npm run make 后自动上传到 GitHub Releases
    publishers: [
        {
            name: '@electron-forge/publisher-github',
            config: {
                repository: {
                    owner: 'bubble791',
                    name: 'Bubble791',
                },
                draft: true,
            },
        },
    ],
    plugins: [
        new VitePlugin({
          build: [
            {
              entry: 'src/main/index.ts',      // 主进程入口
              config: 'config/vite.main.config.ts', // 主进程 Vite 配置
              target: 'main',                  // 标识为主进程
            },
            {
              entry: 'src/preload.ts',         // 预加载脚本
              config: 'config/vite.preload.config.ts', // 预加载脚本 Vite 配置
              target: 'preload',
            },
          ],
          renderer: [
            {
              name: 'main_window',             // 窗口名称
              config: 'config/vite.render.config.mts', // 渲染进程配置
            },
          ],
        }),
      ]
};

export default config;
